package com.kangkang.generic;

interface Info<T>{ // 在接口上定义泛型
    public T getVar() ; // 定义抽象方法，抽象方法的返回值就是泛型类型
}
class InfoImpl<T> implements Info<T>{ // 定义泛型接口的子类
    private T var ; // 定义属性
    public InfoImpl(T var){ // 通过构造方法设置属性内容
        this.var = var;
    }
    @Override
    public T getVar(){
        return this.var ;
    }
}


public class Test2 {
    public static void show(Object o) {
        System.out.println(o.getClass());
    }
    public static void main(String[] args) {
        Info<String> info1 = new InfoImpl<>("zhangsan");
        System.out.println(info1.getVar().getClass());

        Info<Integer> info2 = new InfoImpl<>(12);
        System.out.println(info2.getVar().getClass());

        int a = 10;
        System.out.println(int.class);
        show(a);
    }
}
